package com.example.smartcity_poverty.logic.network

import com.example.smartcity_poverty.logic.ServiceBean.JobSearchBean.*
import com.example.smartcity_poverty.logic.ServiceBean.LivingPayment.LpAddAllListModel
import com.example.smartcity_poverty.logic.ServiceBean.LivingPayment.LpAddPhoneModel
import com.example.smartcity_poverty.logic.ServiceBean.LivingPayment.SmHomeListAllModel
import com.example.smartcity_poverty.logic.ServiceBean.LivingPayment.SmHomeListShowModel
import com.example.smartcity_poverty.logic.ServiceBean.LogisticsQueryBean.*
import com.example.smartcity_poverty.logic.ServiceBean.OA.*
import com.example.smartcity_poverty.logic.ServiceBean.PetHospitalBean.*
import com.example.smartcity_poverty.logic.ServiceBean.SeeMovieBean.SmHomeBannerModel
import com.example.smartcity_poverty.logic.ServiceBean.SeekHouseBean.SHHotListAllModel
import com.example.smartcity_poverty.logic.ServiceBean.SeekHouseBean.SHHotListShowDataModel
import com.example.smartcity_poverty.logic.ServiceBean.SmartBus.BusPathAllModel
import com.example.smartcity_poverty.logic.ServiceBean.SmartBus.BusPathDataIlsModel
import com.example.smartcity_poverty.logic.ServiceBean.SmartBus.BusPathModel
import com.example.smartcity_poverty.logic.ServiceBean.SmartBus.BusPersonListModel
import com.example.smartcity_poverty.logic.ServiceBean.SmartTrafficControl.StcDataModel
import com.example.smartcity_poverty.logic.ServiceBean.TrafficViolationsInquiry.TvHomeListModel
import com.example.smartcity_poverty.logic.ServiceBean.VolunteerService.*
import com.example.smartcity_poverty.logic.model.*
import com.example.smartcity_poverty.logic.model.GovernmentHotLine.GmHotLineBannerModel
import com.example.smartcity_poverty.logic.model.GovernmentHotLine.GmHotLineMeAllModel
import com.example.smartcity_poverty.logic.model.GovernmentHotLine.GmHotLineMoreModel
import com.example.smartcity_poverty.logic.model.GovernmentHotLine.GmHotLineUserListAllModel
import com.example.smartcity_poverty.logic.model.ActivityManAge.HBanner
import com.example.smartcity_poverty.logic.model.ActivityManAge.HListAll
import com.example.smartcity_poverty.logic.model.ActivityManAge.HListModel
import com.example.smartcity_poverty.logic.model.ActivityManAge.HListUserAll
import com.example.smartcity_poverty.logic.model.Attreneys.*
import com.example.smartcity_poverty.logic.model.LoveDonate.*
import com.example.smartcity_poverty.logic.model.NumberBook.NBListModel
import com.example.smartcity_poverty.logic.model.NumberBook.NumberBookAll
import com.example.smartcity_poverty.logic.model.NumberBook.NumberBookUserAllModel
import com.example.smartcity_poverty.logic.model.RubbishClassify.*
import com.example.smartcity_poverty.logic.model.YhyoutPost.*
import com.example.smartcity_poverty.logic.model.stop.StopWhereAll
import com.example.smartcity_poverty.logic.model.stop.StopWhereTime
import okhttp3.RequestBody
import retrofit2.http.*
import com.example.smartcity_poverty.logic.model.NewsModel as NewsModel1

/**
 *  created by ikun
 *  ANDROID STUDIO - version 4.0
 *  email: jinkunwei41@gmail.com
 * --------------------------------
 *  主页，全部服务，新闻，个人APi接口
 **/


interface AppApi {

    companion object {
        // 安全类型
        private const val Safety = "Authorization"

        // 查询某个问诊中的所有聊天
        var ApiId: Int? = null
    }

    // 获取轮播图
    @GET("/prod-api/api/rotation/list")
    suspend fun getBanner(@QueryMap mp: Map<String, Int>): BannerModel

    // More
    @GET("/prod-api/api/service/list")
    suspend fun getMore(): MoreModel

    // 根据指定的类名ID获取服务
    @GET("/prod-api/api/service/list")
    suspend fun getMoreType(@Path("serviceType") serviceType: String): MoreModel

    // 获取热门主题
    @GET("/prod-api/press/press/list")
    suspend fun getHot(@Query("hot") hot: String?, @Query("type") type: String?): NewsModel1

    // 获取新闻详情
    @GET("/prod-api/press/press/{id}")
    suspend fun getNewsYes(@Path("id") id: Int): NewsShowModel

    // 获取新闻评论列表
    @GET("/prod-api/press/comments/list")
    suspend fun getNewsCommentList(@Query("newsId") newsID: Int) : NewsCommentModel

    // 发表新闻评论
    @POST("/prod-api/press/pressComment")
    suspend fun postNewsComment(
        @Header("Authorization") token: String,
        @Body body: RequestBody
    ) : LoginModel

    // 用户注册
    @POST("/prod-api/api/register")
    suspend fun newLogin(@Body body: RequestBody) : LoginModel

    // 用户登录
    @POST("/prod-api/api/login")
    suspend fun login(@Body body: RequestBody): LoginModel

    // 获取用户信息
    @GET("/prod-api/api/common/user/getInfo")
    suspend fun loginAll(@Header("Authorization") token: String): LoginAll

    // 修改个人信息
    @PUT("/prod-api/api/common/user")
    suspend fun newLoginInfo(
        @Header("Authorization") token: String,
        @Body body: RequestBody
    ): LoginModel

    // 修改密码
    @PUT("/prod-api/api/common/user/resetPwd")
    suspend fun newPwd(@Header("Authorization") token: String, @Body body: RequestBody): LoginModel

    // 意见反馈
    @POST("/prod-api/api/common/feedback")
    suspend fun newContent(
        @Header("Authorization") token: String,
        @Body body: RequestBody
    ): LoginModel

    // -----------------------------------------------------------------------------------------------------------


    /**
     * 停哪儿
     */

    // 获取停车场列表
    @GET("/prod-api/api/park/lot/list")
    suspend fun getStopWhereAll(): StopWhereAll

    // 查询停车记录列表
    @GET("/prod-api/api/park/lot/record/list")
    suspend fun getStopWhereTime(@Query("entryTime") inputTime: String): StopWhereTime


    // ----------------------------------------------------------------------------------------------------------


    /**
     * 活动管理
     */

    // 获取轮播图
    @GET("/prod-api/api/activity/rotation/list")
    suspend fun getHBanner(): HBanner

    // 获取活动列表
    @GET("/prod-api/api/activity/activity/list")
    suspend fun getHList(@Query("categoryId") categoryId: Int): HListModel

    // 获取活动列表详情
    @GET("/prod-api/api/activity/activity/{id}")
    suspend fun getHListAll(@Path("id") id: Int): HListAll

    // 获取评论列表
    @GET("/prod-api/api/activity/comment/list")
    suspend fun getListUserAll(@Query("activityId") activityId: Int): HListUserAll

    // 添加活动评论
    @POST("/prod-api/api/activity/comment")
    suspend fun setLikeName(
        @Header("Authorization") token: String,
        @Body body: RequestBody
    ): LoginModel


    // ---------------------------------------------------------------------------------------

    /**
     * 数字图书馆
     */
    // 获取图书馆列表
    @GET("/prod-api/api/digital-library/library/list")
    suspend fun getNbList(@Header("Authorization") token: String): NBListModel

    /**
     * 图书馆详情
     */
    @GET("/prod-api/api/digital-library/library/{Id}")
    suspend fun getNumberBookAll(
        @Header("Authorization") token: String,
        @Path("Id") Id: Int
    ): NumberBookAll

    // 获取图书馆评论
    @GET("/prod-api/api/digital-library/library-comment/list")
    suspend fun getNumberBookUserAll(
        @Header("Authorization") token: String,
        @Query("libraryId") id: Int
    ): NumberBookUserAllModel


    // -------------------------------------------------------------------------------------------
    /**
     * 青年驿站
     */

    // 获取所有人才政策区域
    @GET("/prod-api/api/youth-inn/talent-policy-area/list")
    suspend fun getYhMore(@Header("Authorization") token: String): YhMoreModel

    // 分页获取所有驿站列表
    @GET("/prod-api/api/youth-inn/youth-inn/list")
    suspend fun getYhUserListAll(@Header("Authorization") token: String): YhListAllModel

    // 获取指定驿站的详情
    @GET("/prod-api/api/youth-inn/youth-inn/{Id}")
    suspend fun getYhUserListAddAll(
        @Header("Authorization") token: String,
        @Path("Id") id: Int
    ): YhListAddAll

    // 获取人才政策区域详情
    @GET("/prod-api/api/youth-inn/talent-policy-area/{id}")
    suspend fun getYhIntroduceAll(
        @Header("Authorization") token: String,
        @Path("id") id: Int
    ): YhIntroduceAll

    // 分页获取某个区域的所有人才政策
    @GET("/prod-api/api/youth-inn/talent-policy/list")
    suspend fun getYhListAll(
        @Header("Authorization") token: String,
        @Query("areaId") id: Int
    ): YhListAll

    // 获取指定人才政策的详情
    @GET("/prod-api/api/youth-inn/talent-policy/{id}")
    suspend fun getYhListDetail(
        @Header("Authorization") token: String,
        @Path("id") id: Int
    ): YhDetailModel


    // -------------------------------------------------------------------------------------------------

    /**
     * 爱心捐赠
     */
    // 获取轮播图
    @GET("/prod-api/api/public-welfare/ad-banner/list")
    suspend fun getLoveBanner(
        @Header("Authorization") token: String
    ): LoveBannerModel

    // 获取公益活动的最新捐助记录
    @GET("/prod-api/api/public-welfare/donate-record/list?=&pageNum=1&pageSize=100")
    suspend fun getLoveSizeAll(
        @Header("Authorization") token: String
    ): LoveSizeAllModel

    // 获取所有公益分类
    @GET("/prod-api/api/public-welfare/public-welfare-type/list")
    suspend fun getLoveMoreAll(
        @Header("Authorization") token: String
    ): LoveMoreAll

    // 获取所有被推荐的公益活动
    @GET("/prod-api/api/public-welfare/public-welfare-activity/recommend-list")
    suspend fun getLoveListAll(
        @Header("Authorization") token: String
    ): LoveListAllModel

    // 分页获取某个分类下的所有公益活动
    @GET("/prod-api/api/public-welfare/public-welfare-activity/list")
    suspend fun getLoveActivityAll(
        @Header("Authorization") token: String,
        @Query("typeId") id: Int
    ): LoveActivityAllModel

    // 发起捐助
    @POST("/prod-api/api/public-welfare/donate-record")
    suspend fun getJuanZhu(
        @Header("Authorization") token: String,
        @Body body: RequestBody
    ): LoginModel

    // ----------------------------------------------------------------------------------------

    /**
     * 政府服务热线Api接口
     */

    // 获取所有广告轮播图
    @GET("/prod-api/api/gov-service-hotline/ad-banner/list")
    suspend fun getGmHotLineBanner(
        @Header("Authorization") token: String
    ): GmHotLineBannerModel


    // 查询所有诉求分类
    @GET("/prod-api/api/gov-service-hotline/appeal-category/list")
    suspend fun getGmHotLineMoreAll(@Header("Authorization") token: String): GmHotLineMoreModel

    // 分页查询我提交的所有诉求
    @GET("/prod-api/api/gov-service-hotline/appeal/my-list")
    suspend fun getGmHotLineMeListAll(@Header("Authorization") token: String): GmHotLineMeAllModel

    // 分页查询某个诉求分类下的所有诉求
    @GET("/prod-api/api/gov-service-hotline/appeal/list")
    suspend fun getGmHotLineUserListAll(
        @Header("Authorization") token: String,
        @Query("appealCategoryId") id: Int
    ): GmHotLineUserListAllModel

    // 创建提交诉求
    @Headers("Content-Type: application/json")
    @POST("/prod-api/api/gov-service-hotline/appeal")
    suspend fun getHotLineAdd(
        @Header("Authorization") token: String,
        @Body pMap: RequestBody
    ): LoginModel

    // -----------------------------------------------------------------------------------------------

    /**
     * 垃圾分类
     */

    // 获取所有广告轮播图
    @GET("/prod-api/api/garbage-classification/ad-banner/list")
    suspend fun getRcBanner(@Header("Authorization") token: String): RcBannerModel

    // 分页查询某个新闻分类下的新闻列表
    @GET("/prod-api/api/garbage-classification/news/list")
    suspend fun getRcNewsList(
        @Header("Authorization") token: String,
        @Query("type") type: Int
    ): RcNewsListModel

    // 查询指定新闻的详情信息
    @GET("/prod-api/api/garbage-classification/news/{id}")
    suspend fun getRcShowNews(
        @Header("Authorization") token: String,
        @Path("id") id: Int
    ): RcShowNewsModel

    // 发表新闻评论
    @POST("/prod-api/api/garbage-classification/news-comment")
    suspend fun getRcAdd(
        @Header("Authorization") token: String,
        @Body body: RequestBody
    ): LoginModel

    // 获取所有宣传海报
    @GET("/prod-api/api/garbage-classification/poster/list")
    suspend fun getRcSeekBanner(@Header("Authorization") token: String): RcSeekBannerModel

    // 获取所有垃圾分类
    @GET("/prod-api/api/garbage-classification/garbage-classification/list")
    suspend fun getRcSeekClassify(@Header("Authorization") token: String): RcSeekClassifyMpdel

    // 获取所有垃圾分类搜索热词
    @GET("/prod-api/api/garbage-classification/garbage-classification/hot/list")
    suspend fun getRcSeekAllTitle(@Header("Authorization") token: String): RcSeekAllTitleModel

    // 获取所有垃圾分类
    @GET("/prod-api/api/garbage-classification/garbage-classification/list")
    suspend fun getRcSeekAll(
        @Header("Authorization") token: String,
        @Query("name") name: String
    ): RcSeekAllModel

    @GET("/prod-api/api/garbage-classification/garbage-classification/list")
    suspend fun getRcSeekAll2(
        @Header("Authorization") token: String,
        @Query("type") name: String
    ): RcSeekAllModel


    // 获取所有宣传海报
    @GET("/prod-api/api/garbage-classification/poster/list")
    suspend fun getRcClassifyBanner(@Header("Authorization") token: String): RcClassifyBanner

    // 获取某个垃圾分类下方的所有举例
    @GET("/prod-api/api/garbage-classification/garbage-example/list")
    suspend fun getRcClassifyAll(@Header("Authorization") token: String): RcClassifyAllModel


    // ---------------------------------------------------------------------------------------------------
    /**
     * 律师咨询
     */

    // 获取所有广告轮播图
    @GET("/prod-api/api/lawyer-consultation/ad-banner/list")
    suspend fun getAttBanner(@Header("Authorization") token: String): AttBannerModel

    // 获取所有法律专长
    @GET("/prod-api/api/lawyer-consultation/legal-expertise/list")
    suspend fun getAttMoreAll(@Header("Authorization") token: String): AttMoreModel

    // 查询好评率最高的律师列表
    @GET("/prod-api/api/lawyer-consultation/lawyer/list-top10")
    suspend fun getAttListAll(@Header("Authorization") token: String): AttListModel

    // 获取指定律师的详细信息
    @GET("/prod-api/api/lawyer-consultation/lawyer/{id}")
    suspend fun getAttUserAll(
        @Header("Authorization") token: String,
        @Path("id") id: Int
    ): AttUserAllModel

    // 分页获取律师的全部评价列表
    @GET("/prod-api/api/lawyer-consultation/lawyer/list-evaluate")
    suspend fun getAttUserListAll(
        @Header("Authorization") token: String,
        @Query("lawyerId") lawyerId: Int
    ): AttUserListAllModel

    // 分页获取律师列表
    @GET("/prod-api/api/lawyer-consultation/lawyer/list")
    suspend fun getAttLvShiListAll(
        @Header("Authorization") token: String,
        @Query("legalExpertiseId") legalExpertiseId: Int?
    ): AttLvShiListAllModel

    // 分页获取当前用户提交的法律咨询列表
    @GET("/prod-api/api/lawyer-consultation/legal-advice/list")
    suspend fun getAttMeListAll(
        @Header("Authorization") token: String
    ): AttMeListAllModel

    // 获取法律咨询详情
    @GET("/prod-api/api/lawyer-consultation/legal-advice/{id}")
    suspend fun getAttMeListXQ(
        @Header("Authorization") token: String,
        @Path("id") id: Int
    ): AttMeListUserModel

    // 对某条已完成的法律咨询进行评价
    @POST("/prod-api/api/lawyer-consultation/legal-advice")
    suspend fun getAttSetAll(
        @Header("Authorization") token: String,
        @Body body: RequestBody
    ): LoginModel

    // ---------------------------------------------------------------------------------------------


    /**
     * TODO 智慧巴士
     */

    // TODO 查询路线列表
    @GET("/prod-api/api/bus/line/list")
    suspend fun getBusPath(): BusPathModel

    // TODO 查询站点信息
    @GET("/prod-api/api/bus/stop/list")
    suspend fun getBusPathAll(@Query("linesId") linesId: Int): BusPathAllModel

    // TODO 查询路线详情
    @GET("/prod-api/api/bus/line/{id}")
    suspend fun getBusPathDataIls(@Path("id") id: Int): BusPathDataIlsModel

    // TODO 新增巴士订单
    @POST("/prod-api/api/bus/order")
    suspend fun getBusPost(
        @Header("Authorization") token: String,
        @Body body: RequestBody
    ): LoginModel

    // TODO 查询订单列表
    @GET("/prod-api/api/bus/order/list")
    suspend fun getBusPersonList(
        @Header("Authorization") token: String,
        @Query("status") status: Int
    ): BusPersonListModel

    // TODO 支付巴士订单
    @POST("/prod-api/api/bus/pay")
    suspend fun getBusPostList(
        @Header("Authorization") token: String,
        @Body body: RequestBody
    ): LoginModel

    // ------------------------------------------------------------------------------------------


    /**
     * (TODO ---门诊预约---)
     */

    // TODO 获取医院信息列表
    @GET("/prod-api/api/hospital/hospital/list")
    suspend fun getOaDataList(): OaDataListModel

    // TODO 获取医院详细信息
    @GET("/prod-api/api/hospital/hospital/{id}")
    suspend fun getOaDataShow(@Path("id") id: Int): OaDataShowModel

    // TODO 获取医院详情轮播图
    @GET("/prod-api/api/hospital/banner/list")
    suspend fun getOaDataShowBanner(@Query("hospitalId") id: Int): OaDataShowBannerModel

    // TODO 查询专家诊与普通诊的科室分类
    @GET("/prod-api/api/hospital/category/list")
    suspend fun getOaShowMeData(): OaShowMeDataModel

    // TODO .查询预约详情
    @GET("/prod-api/api/hospital/reservation/{id}")
    suspend fun getOaShowMeAoData(
        @Header("Authorization") token: String,
        @Path("id") id: Int
    ): OaShowMeAoDataModel

    // TODO 生成预约单
    @POST("/prod-api/api/hospital")
    suspend fun getOaShowMeAdd(
        @Header("Authorization") token: String,
        @Body body: RequestBody
    ): LoginModel

    // ---------------------------------------------------------------------------------------------------


    /**
     *  TODO 违章查询（智慧交管）
     */


    // TODO 获取当前人处罚书列表
    @GET("/prod-api/api/traffic/illegal/notice/list")
    suspend fun getTvHomeList(
        @Header("Authorization") token: String,
        @Query("plateNo") plateNo: String
    ): TvHomeListModel


    // ---------------------------------------------------------------------------------------------------


    /**
     *  TODO 找房子
     */

    // TODO 查询房源列表
    @GET("/prod-api/api/house/housing/list?pageNum=1&pageSize=30")
    suspend fun getSHHotListAll(
        @Query("houseType") houseType: String?
    ): SHHotListAllModel

    // TODO 模糊查询 -- 查询房源列表
    @GET("/prod-api/api/house/housing/list")
    suspend fun getSHSeek(@Query("sourceName") sourceName: String): SHHotListAllModel

    // TODO 获取房源详情
    @GET("/prod-api/api/house/housing/{id}")
    suspend fun getSHHotListShowData(@Path("id") id: Int): SHHotListShowDataModel


    // ----------------------------------------------------------------------------------------------------


    /**
     * TODO 智慧交管
     */

    // TODO 获取当前人处罚书列表
    @GET("/prod-api/api/traffic/illegal/notice/list")
    suspend fun getStcDataAll(
        @Header("Authorization") token: String,
        @Query("plateNo") plateNo: String
    ): StcDataModel


    // ----------------------------------------------------------------------------------------------------


    /**
     * 生活缴费
     */

    // TODO  手机话费充值
    @POST("/prod-api/api/living/phone/recharge")
    suspend fun getLpAddPhone(
        @Header("Authorization") token: String,
        @Body body: RequestBody
    ): LpAddPhoneModel

    // TODO 查询当前用户话费充值记录
    @GET("/prod-api/api/living/phone/record/list")
    suspend fun getLpAddAllList(
        @Header("Authorization") token: String
    ): LpAddAllListModel


    // --------------------------------------------------------------------------------------------


    /**
     * TODO 看电影
     */

    // TODO 查询广告列表
    @GET("/prod-api/api/movie/rotation/list")
    suspend fun getSmHomeBanner(): SmHomeBannerModel

    // TODO 查询影片信息列表
    @GET("/prod-api/api/movie/film/list")
    suspend fun getSmHomeListAll(): SmHomeListAllModel

    // TODO 搜索查询影片信息列表
    @GET("/prod-api/api/movie/film/list")
    suspend fun getSmSeekHomeListAll(
        @Query("name") title: String
    ): SmHomeListAllModel

    // TODO 获取影片信息详细信息
    @GET("/prod-api/api/movie/film/detail/{id}")
    suspend fun getSmHomeListShow(@Path("id") id: Int): SmHomeListShowModel


    // ---------------------------------------------------------------------------------------------


    /**
     * TODO 志愿服务
     */

    // TODO 获取所有广告轮播图
    @GET("/prod-api/api/volunteer-service/ad-banner/list")
    suspend fun getVtBanner(
        @Header("Authorization") token: String
    ): VtBannerModel

    // TODO 分页查询所有志愿活动列表
    @GET("/prod-api/api/volunteer-service/activity/list")
    suspend fun getVtNews(
        @Header("Authorization") token: String
    ): VtNewsModel

    @GET("/prod-api/api/volunteer-service/activity/list")
    suspend fun getVtSeekNews(
        @Header("Authorization") token: String,
        @Query("title") title: String
    ): VtNewsModel

    // TODO 报名/取消报名某场志愿活动
    @POST("/prod-api/api/volunteer-service/register")
    suspend fun getVtTrue(
        @Header("Authorization") token: String,
        @Body body: RequestBody
    ): LoginModel


    // TODO 获取志愿活动详情
    @GET("/prod-api/api/volunteer-service/activity/{id}")
    suspend fun getVtDataShow(
        @Header("Authorization") token: String,
        @Path("id") id: Int
    ): VtDataShowModel


    // TODO 分页查询所有新闻列表
    @GET("/prod-api/api/volunteer-service/news/list")
    suspend fun getVtHomeNews(
        @Header("Authorization") token: String
    ): VtHomeNewsModel


    // TODO 查询新闻详情
    @GET("/prod-api/api/volunteer-service/news/{id}")
    suspend fun getVtShowNews(
        @Header("Authorization") token: String,
        @Path("id") id: Int
    ): VtShowNewsModel


    // ------------------------------------------ ------------------------------------------


    /**
     * TODO 找工作
     */

    // TODO 查询职位列表
    @GET("/prod-api/api/job/profession/list")
    suspend fun getJSMore(@Header("Authorization") token: String): JSMoreModel

    @GET("/prod-api/api/job/profession/list")
    suspend fun getSeekJSMore(
        @Header("Authorization") token: String,
        @Query("id") id: Int
    ): JSMoreModel

    // TODO 查询招聘列表
    @GET("/prod-api/api/job/post/list")
    suspend fun getJsList(@Header("Authorization") token: String): JsListModel

    // TODO 搜索职位
    @GET("/prod-api/api/job/post/list")
    suspend fun getJsSeekList(
        @Header("Authorization") token: String,
        @Query("name") name: String
    ): JsListModel


    // TODO 获取招聘信息详情
    @GET("/prod-api/api/job/post/{id}")
    suspend fun getJsListAll(
        @Header("Authorization") token: String,
        @Path("id") id: Int
    ): JsListAllModel


    // TODO 获取公司详情
    @GET("/prod-api/api/job/company/{id}")
    suspend fun getJsListBoss(
        @Header("Authorization") token: String,
        @Path("id") id: Int
    ): JsListBossModel


    // TODO 查询用户简历详情
    @GET("/prod-api/api/job/resume/queryResumeByUserId/{userId}")
    suspend fun getJsMeAll(
        @Header("Authorization") token: String,
        @Path("userId") userId: Int
    ): JsMeAllModel


    // TODO 修改当前用户简历
    @PUT("/prod-api/api/job/resume")
    suspend fun getJsMeAddAll(
        @Header("Authorization") token: String,
        @Body body: RequestBody
    ): LoginModel

    // TODO 投递简历
    @POST("/prod-api/api/job/deliver")
    suspend fun getJsTou(
        @Header("Authorization") token: String,
        @Body body: RequestBody
    ): LoginModel

    // TODO 查询投递历史列表
    @GET("/prod-api/api/job/deliver/list")
    suspend fun getMeListAll(
        @Header("Authorization") token: String
    ): JsMeListModel


    // ------------------------------------------ ------------------------------------------


    /**
     * TODO 宠物医院
     */

    // TODO 获取所有宠物分类
    @GET("/prod-api/api/pet-hospital/pet-type/list")
    suspend fun getPhMoreAll(@Header("Authorization") token: String): PhMoreAllModel

    // TODO 分页查询当前用户的所有问诊记录
    @GET("/prod-api/api/pet-hospital/inquiry/my-list")
    suspend fun getPhMeListAll(@Header("Authorization") token: String): PhMeListAllModel

    // TODO 查询所有公开的问诊案例
    @GET("/prod-api/api/pet-hospital/inquiry/list?pageNum=1&pageSize=50")
    suspend fun getPhAllList(@Header("Authorization") token: String): PhAllListModel


    // TODO 查询某个问诊中的所有聊天
    @GET("/prod-api/api/pet-hospital/inquiry-message/list")
    suspend fun getPhAllUserList(
        @Header("Authorization") token: String,
        @QueryMap body: Map<String, Int>
    ): PhAllUserListModel

    // TODO 创建问题咨询
    @POST("/prod-api/api/pet-hospital/inquiry")
    suspend fun getJsAddUserList(
        @Header("Authorization") token: String,
        @Body body: RequestBody
    ): LoginModel

    // TODO 追问某个问诊聊天
    @POST("/prod-api/api/pet-hospital/inquiry-message")
    suspend fun getAddUser(
        @Header("Authorization") token: String,
        @Body body: RequestBody
    ): LoginModel

    // TODO 分页获取所有宠物医生
    @GET("/prod-api/api/pet-hospital/pet-doctor/list")
    suspend fun getJsThisAll(@Header("Authorization") token: String): JsThisAllModel


    // ------------------------------------------ ------------------------------------------


    /**
     * TODO 物流查询
     */

    // TODO 获取所有首页广告轮播图
    @GET("/prod-api/api/logistics-inquiry/ad-banner/list")
    suspend fun getLqBanner(@Header("Authorization") token: String): LqBannerModel

    // TODO 获取所有物流公司
    @GET("/prod-api/api/logistics-inquiry/logistics_company/list")
    suspend fun getLqMore(@Header("Authorization") token: String): LqMoreModel

    // TODO 获取物流公司详情
    @GET("/prod-api/api/logistics-inquiry/logistics_company/{id}")
    suspend fun getLqShowData(
        @Header("Authorization") token: String,
        @Path("id") id: Int
    ): LqShowModel

    // TODO 根据运单号查询物流信息
    @GET("/prod-api/api/logistics-inquiry/logistics_info/{no}")
    suspend fun getLqNoQuery(
        @Header("Authorization") token: String,
        @Path("no") no: String
    ): LqNoQueryModel

    // TODO 发起物流投诉
    @POST("/prod-api/api/logistics-inquiry/logistics_complaint")
    suspend fun getLqTouSu(
        @Header("Authorization") token: String,
        @Body body: RequestBody
    ): LoginModel

    // TODO 分页获取当前用户的所有投诉记录
    @GET("/prod-api/api/logistics-inquiry/logistics_complaint/my-list")
    suspend fun getLqTouSuListAll(
        @Header("Authorization") token: String
    ): LqTouSuListModel

}